// 简单脚本用于测试创建成绩记录
const resultService = require('./services/resultService');
const User = require('./models/User');

async function testCreateResult() {
  try {
    console.log('开始测试创建成绩记录...');
    
    // 1. 获取一个存在的用户（使用测试用户）
    const testEmail = 'testuser@example.com'; // 使用一个已知存在的用户邮箱
    let user = await User.findByEmail(testEmail);
    
    if (!user) {
      console.log(`❌ 未找到用户: ${testEmail}，尝试创建新用户...`);
      // 如果没有测试用户，创建一个新用户
      const newUserId = await User.create({
        username: 'testuser',
        email: 'testuser@example.com',
        password: 'testpassword'
      });
      console.log(`✅ 新用户创建成功，ID: ${newUserId}`);
      
      // 重新获取用户信息
      user = await User.findByEmail(testEmail);
    }
    
    console.log(`✅ 找到用户: ${user.username} (ID: ${user.id})`);
    
    // 2. 创建成绩记录
    const resultData = {
      user_id: user.id,
      assessment_id: 1, // 使用一个存在的测评ID
      score: 65, // 示例分数
      answers: JSON.stringify({ // 转换为JSON字符串
        "1": 3,
        "2": 2,
        "3": 4,
        "4": 3,
        "5": 2
      })
    };
    
    const resultId = await resultService.createResult(resultData);
    console.log(`✅ 成绩记录创建成功！resultId = ${resultId}`);
    
    // 3. 验证成绩记录是否存在
    const createdResult = await resultService.getResultById(resultId);
    if (createdResult) {
      console.log(`✅ 验证成功：成绩记录已存在于数据库中`);
      console.log(`   分数: ${createdResult.score}`);
      console.log(`   测评ID: ${createdResult.assessment_id}`);
      console.log(`   用户ID: ${createdResult.user_id}`);
    } else {
      console.log(`❌ 验证失败：未能在数据库中找到创建的成绩记录`);
    }
    
  } catch (error) {
    console.error(`❌ 测试失败: ${error.message}`);
    console.error(error.stack);
  }
}

// 运行测试
console.log('启动成绩记录创建测试...');
testCreateResult().then(() => {
  console.log('测试完成');
  process.exit(0);
}).catch(err => {
  console.error('测试异常:', err);
  process.exit(1);
});